通俗来讲,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
SVM
SVM 的目标函数基本型
min12w2min12w2min \frac{1}{2}w^2s.t.yi(wTxi+b)≥1,i=1,2,…,ms.t.yi(wTxi+b)≥1,i=1,2,…,ms.t. y_i(w^Tx_i+b)\ge1, i=1,2,…,m
函数间隔和几何间隔,假设超平面为 wTx+b=0wTx+b=0w^Tx+b=0:
函数间隔:
用 |wTx+b||wTx+b||w^Tx+b|衡量点 x 到超平面的远近,若 wTx+bwTx+bw^Tx+b 的符号与类标记符号 y 一致,则分类正确。
因此可以用 y(wTx+b)y(wTx+b)y(w^Tx+b)的正负性判断分类正确性。
定义函数间隔为 r=y(WTx+b)r=y(WTx+b)r=y(W^Tx+b)
几何间隔:
点到超平面的距离为 |wTx+b|||w|||wTx+b|||w||\frac{|w^Tx+b|}{||w||}
定义几何间隔为 r=y(wTx+b)||w||r=y(wTx+b)||w||r=\frac{y(w^Tx+b)}{||w||}
因此,几何间隔实际上相当于函数间隔初上 ||w||||w||||w||
基本型中函数间隔取 1,目标函数的最大化几何间隔 2/||w||2/||w||2/||w||, 约束中要满足每个样本的函数间隔大于 1.
预测函数模型
f(x)=wTx+bf(x)=wTx+bf(x)=w^Tx+b
对偶问题
拉格朗日函数,即对每条约束添加拉格朗日乘子 αi≥0αi≥0\alpha_i\ge0
L(w,b,a)=12w2+∑i=1mαi(1−yi(wTxi+b))L(w,b,a)=12w2+∑i=1mαi(1−yi(wTxi+b))L(w, b, a)=\frac{1}{2}w^2+\sum_{i=1}^{m}{\alpha_i(1-y_i(w^Tx_i+b))}
对 w 和 b 求偏导为 0 后的结果代入基本型消除 w 和 b, 就得到对偶问题。
max
根据对偶问题 max 求解 αα\alpha
求解时要满足 KKT 条件:
αi≥0αi≥0\alpha_i\ge0yi(wTx+b)−1≥0yi(wTx+b)−1≥0y_i(w^Tx+b)-1\ge0αi(yi(wTxi+b)−1)=0αi(yi(wTxi+b)−1)=0\alpha_i(y_i(w^Tx_i+b)-1)=0
支持向量
根据对偶问题求出 αiαi\alpha_i, 若 αi>0αi>0\alpha_i>0, 则对应的样本为支持向量。训练完成后,大部分的样本不需要保留,模型只和支持向量有关。虚线间隔边界上的点就是支持向量。
非线性情况
解决非线性问题时,需要将原始样本映射到高维空间中,使得样本在高维空间中线性可分。
令映射函数为 φφ\varphi, 则样本 x 映射后的向量变为 φ(x)φ(x)\varphi(x)
同上:
基本型
min12w2min12w2min \frac{1}{2}w^2s.t.yi(wTφ(xi)+b)≥1,i=1,2,…,ms.t.yi(wTφ(xi)+b)≥1,i=1,2,…,ms.t. y_i(w^T\varphi(x_i)+b)\ge1, i=1,2,…,m
然后根据基本型得到对偶问题并求解
预测函数模型
f(x)=wTφ(x)+bf(x)=wTφ(x)+bf(x)=w^T\varphi(x)+b
核函数
求解对偶问题时需要计算 φ(xi)Tφ(xj)φ(xi)Tφ(xj)\varphi(x_i)^T\varphi(x_j), 即样本 xi,xjxi,xjx_i, x_j 映射到高维空间后的内积,计算困难。因此可以设想一个函数,满足:
κ(xi,xj)=φ(xi)Tφ(xj)κ(xi,xj)=φ(xi)Tφ(xj)\kappa(x_i, x_j)=\varphi(x_i)^T\varphi(x_j)
这个函数 κ()κ()\kappa()即核函数,使得 xi,xjxi,xjx_i, x_j 的内积变换后等价于高维空间的内积,减少了计算量。
要求:只要一个对称函数所对应的核矩阵半正定,就能作为核函数。
软间隔
在基本型中要求所有样本满足约束条件 (函数间隔大于 1)称为硬间隔;
在软间隔中允许部分样本不满足约束条件;
作用是为了避免在高维空间中仍然无法线性可分的情况和过拟合的情况;
替代损失函数:Hinge loss; 指数损失;对率损失;
若采用 hinge 损失,目标函数基本型变为(其中 C 为无穷大时则相当于硬间隔):
min12w2+C∑mi=1max(0,(1−yi(wTxi+b))min12w2+C∑i=1mmax(0,(1−yi(wTxi+b))min\frac{1}{2}w^2+C\sum_{i=1}^{m}max(0, (1-y_i(w^Tx_i+b))
引入松弛变量 ξi=max(0,(1−yi(wTxi+b))ξi=max(0,(1−yi(wTxi+b))\xi_i=max(0, (1-y_i(w^Tx_i+b)), 因此约束中 ξi≥(1−yi(wTxi+b))ξi≥(1−yi(wTxi+b))\xi_i\ge(1-y_i(w^Tx_i+b)), 得到:
min12w2+C∑i=1mξimin12w2+C∑i=1mξimin\frac{1}{2}w^2+C\sum_{i=1}^{m}\xi_i
s.t.yi(wTxi+b)≥1−ξi,i=1,2,…,ms.t.yi(wTxi+b)≥1−ξi,i=1,2,…,ms.t. y_i(w^Tx_i+b)\ge1-\xi_i, i=1,2,…,m
ξi≥0ξi≥0\xi_i\ge0
SVR 支持向量回归
目标回归模型
f(x)=wTx+bf(x)=wTx+bf(x)=w^Tx+b
传统回归模型计算损失:计算模型输出 f(x) 和真实输出 y 之间的差别作为损失,当且仅当 f(x) 和 y 相同时损失为 0;
SVR 计算损失:允许存在偏差 ϵϵ\epsilon, 仅当 f(x) 和 y 之间的差别大于偏差时才开始计算损失,即以 f(x) 为中心,构建了宽度为 2ε 的间隔带,当训练样本落入此间隔带,则认为预测正确。
基本型
min12w2+C∑i=1mlϵ(f(xi)−yi)min12w2+C∑i=1mlϵ(f(xi)−yi)min\frac{1}{2}w^2+C\sum{i=1}^{m}{l\epsilon(f(x_i)-y_i)}
其中 lϵ(z)lϵ(z)l_\epsilon(z)函数即为了满足间隔带要求,当 |z|<ϵ|z|<ϵ|z|<\epsilon 时损失为 0, 否则损失为 |z|−ϵ|z|−ϵ|z|-\epsilon
类似于加正则项的线性回归,只不过计算损失函数的方式不同。
为什么要把原问题转换为对偶问题?
因为原问题是凸二次规划问题,转换为对偶问题更加高效。
为什么求解对偶问题更加高效?
因为只用求解 alpha 系数,而 alpha 系数只有支持向量才非 0,其他全部为 0.
alpha 系数有多少个?
样本点的个数
参考:
周志华,机器学习:SVM
图形解释,知乎:https://www.zhihu.com/question/21094489
支持向量机通俗解释,CSDN: http://blog.csdn.net/v_july_v/article/details/7624837
支持向量机通俗导论,july: https://blog.csdn.net/v_july_v/article/details/7624837